﻿using Onetube.Models;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

namespace Onetube.Providers.Interfaces
{
    public interface IActivityProvider
    {
        Task<Onetube.Models.SearchVideo.SearchVideoResult> GetMyActivitiesAsync(string token, string regionCode, string maxResults, CancellationTokenSource cancelTask);

        Task<Onetube.Models.SearchVideo.SearchVideoResult> GetMyActivitiesNextPageAsync(string token, string nextPageToken, string regionCode, string maxResults, CancellationTokenSource cancelTask);
    
        Task<IEnumerable<Onetube.Models.Subscription.SubscriptionResult>> GetRecentUploadedVideosAsync(string userId, CancellationTokenSource cancelTask, string maxResults= "25", string startIndex="1");


        Task<IEnumerable<Activity>> GetActivitiesAsync(string userId,string startIndex, string maxResults);

        Task<IEnumerable<Activity>> GetActivitiesNextAsync(string userId, string startIndex, string maxResults);
    }
}